package reflect;

import domain.Person;

import java.lang.reflect.Constructor;
import java.lang.reflect.Method;

public class ReflectDemo4 {

    public static void main(String[] args) throws Exception {


        // 1. 获取Person的Class对象
        Class personClass = Person.class;

        // 获取成员方法们  getMethod(String name, 类<?>... parameterTypes)

        // 获取指定名称的方法
        Method eat_method = personClass.getMethod("eat");
        Person person = new Person();
        // 执行方法
        eat_method.invoke(person);


        Method eat_method2 = personClass.getMethod("eat",String.class);
        eat_method2.invoke(person,"米饭");

        System.out.println("--------------------------------");

        // 获取所有public修饰的方法
        Method[] methods = personClass.getMethods();
        for (Method method : methods) {
            System.out.println(method);
            String methodname = method.getName();
            System.out.println(methodname);
        }


        // 获取类名(这个类名是全类名，也就是 包名.类名)
        String className = personClass.getName();
        System.out.println(className);


    }

}
